package spirit1;

import java.util.Scanner;

// insertSungjuk();
// 성적 데이터를 Scanner클래스로 입력받고 // 총점 , 평균 , 학점을 계산한후
// SungJukDAO에 저장하고, SungjukDAO로 그것을 넘김
public class EX01_Sungjukservice implements EX01_Isungjukservice {
	private EX01_sungjukDAO sdao = new EX01_sungjukDAO();
	@Override
	public int tot(int kor, int eng, int mat) {
		return kor + eng + mat;
	}

	@Override
	public float avg(int tot) {
		
		return Math.round(tot / 3.0f * 100) / 100.0f;
	}
	@Override
	public String grade(float avg) {
			switch ((int) avg / 10) {
			case 10:
			case 9:
				return "A";
			case 8:
				return "B";
			case 7:
				return "C";
			case 6:
				return "D";
			}
			return "F";

	}


	@Override
	public void createSungjuk() {

		System.out.println("성적을 입력해주세요");
		Scanner sc = new Scanner(System.in);

		EX01_Sungjukvo ac = new EX01_Sungjukvo();
		System.out.println("이름을 입력해주세요");
		ac.setName(sc.next());
		while (true) {
			System.out.println("국어 점수를 입력하세요");
			ac.setKor(sc.nextInt());
			if (ac.getKor() >= 0 && (ac.getKor() <= 100)) {
				break;
			}
			System.out.println("국어 점수를 다시 입력해주세요");
		}
		while (true) {
			System.out.println("영어 점수를 입력하세요");
			ac.setEng(sc.nextInt());
			if (ac.getEng() >= 0 && (ac.getEng() <= 100)) {
				break;
			}
			System.out.println("영어 점수를 다시 입력해주세요");
		}
		while (true) {
			System.out.println("수학점수를 입력해주세요");
			ac.setMat(sc.nextInt());
			
			if (ac.getMat() >= 0 && (ac.getMat() <= 100)) {
				break;
			}
			System.out.println("수학점수를 다시 입력해주세요");
		}
		ac.setTot(tot(ac.getKor(),ac.getEng(),ac.getMat()));
		ac.setTot(sc.nextInt());
		ac.setAvg(avg(ac.getTot()));
		ac.setAvg(sc.nextFloat());
		ac.setGrade(grade(ac.getAvg()));
		ac.setGrade(sc.next());
		
		if (sdao.insertSungjuk(ac)) {
			System.out.println("접속이 성공하였습니다.");
			System.out.println("총점은 :" + ac.getTot() + " 입니다.");
			System.out.println("평균은 :" + ac.getAvg() + " 입니다.");
			System.out.println("학점은 :" + ac.getGrade() + " 입니다.");
		}

		else
			System.out.println("정보를 읽을수 없습니다.");
	}
	
	@Override
	public void readSungjuk() {
		for (EX01_Sungjukvo ac : sdao.selectSungjuk()) {
			System.out.print(ac.getName());
			System.out.print("/");
			System.out.print(ac.getKor());
			System.out.print("/");
			System.out.print(ac.getEng());
			System.out.print("/");
			System.out.print(ac.getMat());
			System.out.print("/");
			System.out.print(ac.getTot());
			System.out.print("/");
			System.out.print(ac.getAvg());
			System.out.println("/");
			System.out.print(ac.getGrade());
			System.out.println("/");
			
		}
		
	}

	

	@Override
	public void updateSungjuk() {
		readSungjuk();
		EX01_Sungjukvo ac = new EX01_Sungjukvo();
		Scanner sc = new Scanner(System.in);
		System.out.println("수정할 국어점수를 입력해주세요");
		ac.setKor(sc.nextInt());
		System.out.println("수정할 영어점수를 입력해주세요");
		ac.setEng(sc.nextInt());
		System.out.println("수정할 수학점수를 입력해주세요");
		ac.setMat(sc.nextInt());
		if(sdao.updateSungjuk(ac)){
			System.out.println("점수 수정 성공");
		}
		else
			System.out.println("점수수정 실패");
	}
	@Override
	public void deleteSungjuk() {
		readSungjuk();
		EX01_Sungjukvo ac = new EX01_Sungjukvo();
		Scanner sc = new Scanner(System.in);
		System.out.println("삭제할 학생번호를 입력하세요");
		ac.setSjno(sc.next());
		if(sdao.deleteSungjuk(ac))
			System.out.println("학생 성적이 제거 되었습니다.");
		else
			System.out.println("다시시도해주세요");
		
	}
}
